package com.dragon.modules.yuegou.model.merchant;

import com.dragon.modules.yuegou.entity.merchant.UserEntity;
import com.dragon.modules.yuegou.enums.merchant.UserMerchantType;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 商户用户表模型类
 * 
 * @author pbuilder generated
 * @date 2019-05-07 15:37:13
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class User extends UserEntity {

	@ApiModelProperty(value = "用户名", required = true)
	private String username;

	@ApiModelProperty(value = "用户昵称", required = true)
	private String nickname;

	@ApiModelProperty(value = "手机号", required = true)
	private String mobile;

	private com.dragon.modules.yuegou.model.system.User sysUser;

	@ApiModelProperty(value = "微信openid", required = true)
	private String wxOpenId;

	@ApiModelProperty("微信unionid")
	private String wxUnionId;

	@ApiModelProperty("提现密码")
	private String withdrawPassword;

	public String getWithdrawPassword() {
		return withdrawPassword;
	}

	public void setWithdrawPassword(String withdrawPassword) {
		this.withdrawPassword = withdrawPassword;
	}

	public com.dragon.modules.yuegou.model.system.User getSysUser() {
		return sysUser;
	}

	public void setSysUser(com.dragon.modules.yuegou.model.system.User sysUser) {
		this.sysUser = sysUser;
	}

	public String getWxOpenId() {
		return wxOpenId;
	}

	public void setWxOpenId(String wxOpenId) {
		this.wxOpenId = wxOpenId;
	}

	public String getWxUnionId() {
		return wxUnionId;
	}

	public void setWxUnionId(String wxUnionId) {
		this.wxUnionId = wxUnionId;
	}

	/**
	 * 构造一个空商户用户表模型对象
	 */
	public User() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个商户用户表模型对象
	 * 
	 * @param entity
	 *            实体对象
	 */
	public User(UserEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商户用户表模型对象
	 * 
	 * @param other
	 *            其它对象
	 */
	public User(User other) {
		super(other);
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	@Override
	public String getId() {
		return id;
	}

	/**
	 * 设置ID
	 * 
	 * @param id
	 *            ID
	 * @return 当前对象
	 */
	public User id(String id) {
		this.id = id;
		return this;
	}

	@Override
	public String getBusdId() {
		return busdId;
	}

	/**
	 * 设置商圈ID
	 * 
	 * @param busdId
	 *            商圈ID
	 * @return 当前对象
	 */
	public User busdId(String busdId) {
		this.busdId = busdId;
		return this;
	}

	@Override
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * 设置商户ID
	 * 
	 * @param merchantId
	 *            商户ID
	 * @return 当前对象
	 */
	public User merchantId(String merchantId) {
		this.merchantId = merchantId;
		return this;
	}

	@Override
	public String getUserId() {
		return userId;
	}

	/**
	 * 设置用户ID
	 * 
	 * @param userId
	 *            用户ID
	 * @return 当前对象
	 */
	public User userId(String userId) {
		this.userId = userId;
		return this;
	}

	@Override
	public UserMerchantType getMerchantType() {
		return merchantType;
	}

	/**
	 * 设置[枚举]商户用户类型：0-商家-MERCHANT、1-员工-EMPLOYEE
	 * 
	 * @param merchantType
	 *            [枚举]商户用户类型：0-商家-MERCHANT、1-员工-EMPLOYEE
	 * @return 当前对象
	 */
	public User merchantType(UserMerchantType merchantType) {
		this.merchantType = merchantType;
		return this;
	}

	@Override
	public Integer getVoiceCof() {
		return voiceCof;
	}

	/**
	 * 设置语音播报配置：0-关闭；1-开启
	 * 
	 * @param voiceCof
	 *            语音播报配置：0-关闭；1-开启
	 * @return 当前对象
	 */
	public User voiceCof(Integer voiceCof) {
		this.voiceCof = voiceCof;
		return this;
	}

	@Override
	public String getCreatedBy() {
		return createdBy;
	}

	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy
	 *            创建人ID
	 * @return 当前对象
	 */
	public User createdBy(String createdBy) {
		this.createdBy = createdBy;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置创建时间
	 * 
	 * @param createdTime
	 *            创建时间
	 * @return 当前对象
	 */
	public User createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}

	@Override
	public String getModifiedBy() {
		return modifiedBy;
	}

	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy
	 *            更新人ID
	 * @return 当前对象
	 */
	public User modifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
		return this;
	}

	@Override
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}

	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime
	 *            更新时间
	 * @return 当前对象
	 */
	public User modifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
		return this;
	}

	@Override
	public Boolean getDel() {
		return del;
	}

	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del
	 *            逻辑删除，1表示已删除,0表示未删除
	 * @return 当前对象
	 */
	public User del(Boolean del) {
		this.del = del;
		return this;
	}

	@Override
	public String getDelBy() {
		return delBy;
	}

	/**
	 * 设置删除人ID
	 * 
	 * @param delBy
	 *            删除人ID
	 * @return 当前对象
	 */
	public User delBy(String delBy) {
		this.delBy = delBy;
		return this;
	}

	@Override
	public LocalDateTime getDelTime() {
		return delTime;
	}

	/**
	 * 设置删除时间
	 * 
	 * @param delTime
	 *            删除时间
	 * @return 当前对象
	 */
	public User delTime(LocalDateTime delTime) {
		this.delTime = delTime;
		return this;
	}

}
